/**
 * @desc 角色用户关系表
 */
import { Column, DataType, Model, Table, CreatedAt, UpdatedAt, ForeignKey } from 'sequelize-typescript';
import { User } from './user';
import { Role } from './role';

@Table
export class UserRole extends Model<UserRole> {
  @Column({
    // 放字段的配置属性 例如唯一的
    type: DataType.INTEGER,
    primaryKey: true, // 主键
    autoIncrement: true, // 自动创建
    unique: true, // 唯一
    allowNull: false, // 不允许为空
    comment: '主键ID',
  })
  id: number;

  @ForeignKey(() => User) // 指定User表的外键为userId
  @Column({
    field: 'user_id',
    type: DataType.INTEGER,
    allowNull: false,
    unique: true,
  })
  userId: number;

  @ForeignKey(() => Role) // 指定Role表的外键为roleId
  @Column({
    field: 'role_id',
    type: DataType.INTEGER,
    allowNull: false,
    unique: true,
  })
  roleId: number;

  @CreatedAt
  createdAt: Date;

  @UpdatedAt
  updatedAt: Date;
}

export default () => UserRole;
